package com.ljx.blog.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ljx.blog.common.domain.vo.resp.PageResp;
import com.ljx.blog.user.domain.dto.UserDto;
import com.ljx.blog.user.domain.dto.UserFlagDto;
import com.ljx.blog.user.domain.entity.User;
import com.ljx.blog.user.domain.vo.req.AuthReq;
import com.ljx.blog.user.domain.vo.req.UserPageReq;
import com.ljx.blog.user.domain.vo.req.UserSubmitReq;
import com.ljx.blog.user.domain.vo.resp.LoginResp;
import com.ljx.blog.user.domain.vo.resp.UserResp;
import com.ljx.blog.user.domain.vo.resp.UserRoleResp;

import java.util.List;

public interface UserService extends IService<User> {
    LoginResp login(AuthReq authReq);

    UserResp getInfo(Long userId);

    UserResp register(AuthReq authReq);

    void checkPerAndRoleAndMenu(UserDto userDto);

    User getByUsername(String username);

    UserResp submitByUsername(UserSubmitReq req);

    UserResp submit(UserSubmitReq req);

    PageResp<User> getPage(UserPageReq req, UserFlagDto userFlagDto);

    List<UserRoleResp> getUserRole(Long userId);
}
